﻿#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
#include<stdlib.h>

//1.查找子串第一次出现的位置；
char* myStrStr(const char* str, const char* substr)
{
	//2.const修饰char*，不允许改变mystr指向的值；
	const char* mystr = str;
	const char* mysub = substr;

	while (*mystr != '\0')
	{
		if (*mystr != *mysub)
		{
			++mystr;
			continue;
		}
		//3.临时指针变量；
		const char* temp_mystr = mystr;
		const char* temp_mysub = mysub;
		while (*temp_mysub != '\0')
		{
			if (*temp_mystr != *temp_mysub)
			{
				++mystr;
				break;
			}
			++temp_mysub;
			++temp_mystr;
		}
		//4.说明匹配成功；
		if (*temp_mysub == '\0')
		{
			return (char*)mystr;
		}
	}

	return NULL;
}

void testFindSubString()
{
	char* str = "abcdefg";
	char* sub = "f";//de-->cd-->f
	char* pos = myStrStr(str, sub);
	printf("5.找到子串sub在字符串str的位置，即在str中，pos位置指向的字符串为：%s\n", pos);//defg-->cdefg-->fg
}

//main195：案例：查找子串
int main195()
{
	testFindSubString();

	system("pause");
	return EXIT_SUCCESS;
}